package org.lemon.transport.context.service.queue;

import org.lemon.transport.context.data.queue.message.ProtoQueueMessage;
import org.server.transport.gen.TransportProto.*;

public interface TransportQueueFactory {

    QueueRequestTemplate<ProtoQueueMessage<TransportApiRequestMsg>, ProtoQueueMessage<TransportApiResponseMsg>> createTransportApiRequestTemplate();

    QueueProducer<ProtoQueueMessage<ToRuleEngineMsg>> createRuleEngineMsgProducer();

    QueueProducer<ProtoQueueMessage<ToCoreMsg>> createTbCoreMsgProducer();

    QueueConsumer<ProtoQueueMessage<ToTransportMsg>> createTransportNotificationsConsumer();
}
